const db = uniCloud.database();
const { util, InsideErr } = require("utils");
const collection = db.collection("auth-token");
async function getDbCache(type, appId) {
    let [err, res] = await util.awaitWrap(
        collection
            .where({
                type: type,
                appId: appId,
            })
            .limit(1)
            .get()
    );
    if (err) {
        return [new InsideErr(err), res];
    }
    let { data = [] } = res || {};
    return [null, data[0]];
}

// 保存 token信息
async function saveTokenInfo(info) {
    // 阿里云  表 不存在 , add  会 自动创建表
    // 腾讯/支付宝  表不存在, add 会报错
    try {
        await collection.add(info);
        return [null, true];
    } catch (error) {
        let e = new InsideErr(error);
        return [e, false];
    }
}
// 更新 token 信息
async function updateTokenInfo(docId, newInfo) {
    try {
        // 更新
        await collection.doc(docId).update(newInfo);
        return [null, true];
    } catch (error) {
        let e = new InsideErr(error);
        return [e, false];
    }
}

module.exports = {
    getDbCache,
    saveTokenInfo,
    updateTokenInfo,
};
